22. Abstraction

Abstraction

Abstraction

Abstraction refers to the separation of a class's interface from the details of its implementation. The interface provides a way to interact with an object, while hiding the details and implementation of how the class works.

Example

The String() function within this Date class is an example of abstraction.

class Date {
 public:
  ...
  std::string String() const;
  ...
};

The user is able to interact with the Date class through the String() function, but the user does not need to know about the implementation of either Date or String().

For example, the user does not know, or need to know, that this object internally contains three int member variables. The user can just call the String() method to get data.

If the designer of this class ever decides to change how the data is stored internally -- using a vector of ints instead of three separate ints, for example -- the user of the Date class will not need to know.

Workspace

This section contains either a workspace (it can be a Jupyter Notebook workspace or an online code editor work space, etc.) and it cannot be automatically downloaded to be generated here. Please access the classroom with your account and manually download the workspace to your local machine. Note that for some courses, Udacity upload the workspace files onto https://github.com/udacity, so you may be able to download them there.

Workspace Information:

  • Default file path:
  • Workspace type: jupyter
  • Opened files (when workspace is loaded): n/a